package com.fruit.mapper.goods;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.fruit.pojo.goods.Base;
import com.fruit.pojo.goods.GoodsSpec;
import com.fruit.pojo.goods.InterfaceConfig;
import com.fruit.pojo.goods.RightConfig;
import com.fruit.pojo.goods.GoodsSpecTime;
import com.fruit.pojo.goods.GoodsSpecTimeHarvest;

/**
 * 
* @ClassName: GoodsMapper 
* @author 葛欢欢
* @version 2017.11.30 16:40
 */
public interface GoodsMapper {
	/**
	 * 获取商品详细信息
	 * @param goodsId 商品id
	 * @return List<GoodsSpecTime>
	 */
	List<GoodsSpecTime> getGoodsDetail(Integer goodsId);
	
	/**
	 * 商品列表
	 * @param pam pam
	 * @return List<GoodsSpec>
	 */
	List<GoodsSpec> getGoodsList(Map<String, Object> pam);
	
	/**
	 * 查询商品规格期次信息
	 * @param params params
	 * @return GoodsSpecTime
	 */
	GoodsSpecTime getGoodsSpecTimeById(Map<String, Object> params);
	/**
	 * 查询基地 
	 * @param id 基地id
	 * @return Base
	 */
	Base getBase(Integer id);
	
	/**
	 * 根据分类id查询此分类下的所有 子分类
	 * @param classId 分类id
	 * @return List<String>
	 */
	List<String> getClassIdByPid(String classId);
	
	
	/**
	 * 获取单位名称
	 * @return List<Map<String, String>>
	 */
	List<Map<String, String>> getUnitNameByUnit();
	
	/**
	 * 查询商品的预计信息
	 * @param id id
	 * @return List<GoodsSpecTimeHarvest>
	 */
	List<GoodsSpecTimeHarvest> findGoodsSpecTimeHarvest(Integer id);

	/**
	 * 获取按钮配置
	 * @param appType appType
	 * @return List<InterfaceConfig>
	 */
	List<InterfaceConfig> getInterfaceConfig(String appType);

	/**
	 * 获取权限配置
	 * @return List<RightConfig> 
	 */
	List<RightConfig> getRightConfigList(@Param("type") String type);
	
	/**
	 * 通过ID返回水果园
	 * @param type
	 * @param classId
	 * @return
	 */
	RightConfig getRightConfigByClassId(@Param("type") String type, @Param("classId") String classId);
	
	/**
	 * 获取期次批次ID
	 * @param notifyTime
	 * @return
	 */
	List<Long> getGoodsHarvestIdsByNotifyTime(String notifyTime);
	
	/**
	 * 获取期次批次信息
	 * @param id
	 * @return
	 */
	GoodsSpecTimeHarvest getGoodsHarvestById(int id);
	
	/**
	 * 根据商品期次id查询 商品id
	* @param id
	* @return long
	 */
	long getGoodsTimeIdByGoodsTimeSpecId(int id);
	/**
	 * 查询商品总数
	* @author 葛欢欢
	* @version 2017.11.30 16:40 
	* @return
	 */
	long getGoodSumNum();
}
